#pragma once
#include "stdafx.h"

typedef unsigned int HOOKRESULT;
enum HookResultCodes
{
	OK = 0,
	UNKNOWN_ERROR = 1,
	INVALID_ARGUMENT = 2,
	INVALID_OPERATION = 4,
	ALREADY_INITIALIZED = 8,
	NOT_ATTACHED = 16,
	NOT_INITIALIZED = 32,
	ALREADY_STARTED = 64,
	NOT_STARTED = 128
};

typedef BOOL (CALLBACK* HookProc)(int, WPARAM, LPARAM, void*);

HOOKRESULT InitializeHook(HookProc proc);
HOOKRESULT StartHook(int threadID, void* userData);
HOOKRESULT StopHook();
HOOKRESULT UninitializeHook();